#include<stdlib.h>
#include<stdio.h>
#include<string.h>
#include<sys/types.h>
#include<unistd.h>
#include<signal.h>
#include<sys/time.h>
//信号处理函数
void sighandler(int signo)
{
	printf("%d\n",signo);
}

int main()
{
	//注册信号处理函数
	signal(SIGINT,sighandler);
	signal(SIGQUIT,sighandler);
	//定义信号集变量
	sigset_t set;
	//初始化信号集
	sigemptyset(&set);
	//将SIGINT和SIGQUIT加入到set集合中
	sigaddset(&set,SIGINT);
	sigaddset(&set,SIGQUIT);
	//将ｓｅｔ中信号加入到阻塞信号集中
	sigprocmask(SIG_BLOCK,&set,NULL);
	int j=1;
	int i=0;
	sigset_t pend;
	while(1)
	{
		//获得未决信号集
		sigemptyset(&pend);
		sigpending(&pend);
		for(i=1;i<32;i++)
		{
			int res = sigismember(&pend,i);
			if(res)
			{
				printf("1");
			}
			else
			{
				printf("0");
			}
		}
		printf("\n");
		//循环十次，解除阻塞
		if(j++%10==0)
		{
			sigprocmask(SIG_UNBLOCK,&set,NULL);
		}
		else{
			sigprocmask(SIG_BLOCK,&set,NULL);
		}
		sleep(1);
	}
	return 1;
}
